/*
 * Scheduler.h File
 * 
 * 
 * 
 */
 
 #ifndef this_H
 #define this_H
 
 typedef struct S
 {
	// an array of void pointers, no type
	ProcessPtr array;
	int max;
	int count;
	int head;
	int tail;
 } Scheduler;
 
 typedef Scheduler* SchedulerPtr;
 
 SchedulerPtr SchedulerConstruct(int size); // construct new Scheduler
 int SchedulerDestruct(SchedulerPtr this); // destruct this
 ProcessPtr next(SchedulerPtr this, int* error); // get the next process
 int push(SchedulerPtr this, ProcessPtr process); // adds a process to scheduling list.
 int max(SchedulerPtr this); // get the max # of elements the this can contain.
 int size(SchedulerPtr this); // gets the number of elements
 #endif
 